/*

Servidor.java

El servidor implementa la interfaz que actúa como contrato, aunque puede añadir

otros métodos.

*/

package RMISimple;

import java.rmi.*;

import java.rmi.server.*;

// Toda clase remota RMI ha de extender UnicastRemoteObject o

// una clase derivada, implementando la interfaz remota

public class Servidor extends UnicastRemoteObject

implements InterfazServidor

{

public Servidor() throws RemoteException {

super(); //constructor base

try {

// Establecemos el nombre del servicio asociándolo con

// el objeto recién creado

Naming.rebind("ServidorRMI Simple", this);

// e indicamos que todo ha ido bien

System.out.println("Servidor RMI simple esperando solicitudes");

}catch(Exception x) { // si hay algún error

// lo indicamos igualmente
x.printStackTrace();
System.out.println("Se ha producido un error en Servidor RMI simple");

}

}

// Este es el método remoto que será llamado por los clientes

public String Consulta(String Criterio) throws RemoteException {

System.out.println("Atendiendo consulta <" + Criterio + ">");

return "Consulta <" + Criterio + "> procesada"; }

// en la función main() ponemos en marcha el servidor

public static void main(String args[]) {

// estableciendo un gestor de seguridad RMI

System.setSecurityManager(new RMISecurityManager());

try

{

// y creando un objeto Servidor que quedará a la espera

Servidor MiServidor = new Servidor();

}

catch(Exception x) {

System.out.println("Se produce un error al crear el objeto Servidor");

}

}

}